package com.itmuch.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/*
 * @SpringBootApplication 是一个组合注解
 * 它整合了 @Configuration @EnableAutoConfiguration 和 ComponentScan 注解
 * 并开启了 Spring Boot 程序的组件扫描和自动配置功能
 *
 * @EnableDiscoveryClient: 声明这是一个 Eureka Client, 可以使用 @EnableEurekaClient 代替它
 * 在 spring cloud 中, 服务发现组件有多种选择, 如 ZooKeeper, Consul 等
 * @EnableDiscoveryClient 是为各服务组件提供了支持
 * 而 @EnableEurekaClient 只支持 Eureka
 */
@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerMovieApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerMovieApplication.class, args);
    }

    /*
     * @Bean 是一个方法注解, 作用是实例化一个 Bean 并使用该方法的名称命名
     * 添加 @Bean 注解 restTemplate() 方法, 等价于 RestTemplate restTemplate = new RestTemplate()
     */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
